﻿Imports Fgv.Framework.UI
Imports LS.Leilao.Dominio

Partial Class UserControls_Base_Peca
    Inherits BaseUserControl

#Region "Atributos da pagina"

    Public Property Peca() As Peca
        Get
            Return TryCast(ViewState("_peca"), Peca)
        End Get
        Set(ByVal value As Peca)
            ViewState("_peca") = value
            Me.DataBindPeca()
        End Set
    End Property


#End Region

#Region "Delegates"

    Protected Delegate Sub PageDelegate()


    Private _onSelecionar As System.Delegate
    Public Property OnSelecionar() As System.Delegate
        Get
            Return _onSelecionar
        End Get
        Set(ByVal value As System.Delegate)
            _onSelecionar = value
        End Set
    End Property


#End Region

#Region "Classes Injetadas"

#End Region

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

        If Not IsPostBack Then

        End If

    End Sub

#Region "Funcoes de Databind"

    Protected Sub DataBindPeca()

        lbDesc.Text = Me.Peca.Descricao
        im1.Imagens = Nothing
        Me.DataBindPalavrasChave()
        Me.DataBindTiposDeMaterial()
        Me.DataBindCategorias()

    End Sub

    Protected Sub DataBindPalavrasChave()

        Dim _categorias As IList(Of CategoriaPeca)

        _categorias = Me.GetCategorias()

        chkCategorias.DataSource = _categorias
        chkCategorias.DataTextField = "Descricao"
        chkCategorias.DataValueField = "Id"
        chkCategorias.DataBind()

    End Sub

    Protected Sub DataBindTiposDeMaterial()

        Dim _materiais As IList(Of TipoMaterial)

        _materiais = Me.GetTiposDeMateriais()

        chkMateriais.DataSource = _materiais
        chkMateriais.DataTextField = "Descricao"
        chkMateriais.DataValueField = "Id"
        chkMateriais.DataBind()

    End Sub

    Protected Sub DataBindCategorias()

        Dim _palavras As IList(Of PalavraChave)

        _palavras = Me.GetPalavrasChave()

        chkPalavrasChave.DataSource = _palavras
        chkPalavrasChave.DataTextField = "Palavra"
        chkPalavrasChave.DataValueField = "Id"
        chkPalavrasChave.DataBind()

    End Sub


#End Region

#Region "Operacoes do Usuario"

    Protected Sub chSlt_CheckedChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles chSlt.CheckedChanged

        If Me.OnSelecionar IsNot Nothing Then
            Me.OnSelecionar.DynamicInvoke()
        End If

    End Sub

#End Region

#Region "Classes Auxiliares"

#End Region


    Protected Function GetCategorias() As IList(Of CategoriaPeca)

        Dim _categorias As IList(Of CategoriaPeca)

        _categorias = New List(Of CategoriaPeca)

        _categorias.Add(New CategoriaPeca With {.Codigo = "XPTO", .Descricao = "Categoria de teste"})
        _categorias.Add(New CategoriaPeca With {.Codigo = "SELOS", .Descricao = "Selos"})
        _categorias.Add(New CategoriaPeca With {.Codigo = "MOVEIS", .Descricao = "Móveis"})
        _categorias.Add(New CategoriaPeca With {.Codigo = "MOEDA", .Descricao = "Moedas"})

        Return _categorias

    End Function

    Protected Function GetPalavrasChave() As IList(Of PalavraChave)

        Dim _palavras As IList(Of PalavraChave)

        _palavras = New List(Of PalavraChave)

        _palavras.Add(New PalavraChave With {.Palavra = "selos", .Descricao = "Selos"})
        _palavras.Add(New PalavraChave With {.Palavra = "móveis", .Descricao = "Móveis"})
        _palavras.Add(New PalavraChave With {.Palavra = "moeda", .Descricao = "Moedas"})
        _palavras.Add(New PalavraChave With {.Palavra = "fotografia antiga", .Descricao = "Fotografias antigas"})

        Return _palavras

    End Function

    Protected Function GetTiposDeMateriais() As IList(Of TipoMaterial)

        Dim _materiais As IList(Of TipoMaterial)

        _materiais = New List(Of TipoMaterial)

        _materiais.Add(New TipoMaterial With {.Codigo = "PAPIRO", .Descricao = "Papiro original"})
        _materiais.Add(New TipoMaterial With {.Codigo = "OURO", .Descricao = "Liga de ouro"})
        _materiais.Add(New TipoMaterial With {.Codigo = "PRATA", .Descricao = "Prata"})

        Return _materiais

    End Function

End Class
